package com.cgwx.tmservice.listener;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.cgwx.tmservice.entity.tm.TmParametersConfig;
import com.cgwx.tmservice.entity.vo.TmParamExcelVo;
import com.cgwx.tmservice.service.TmParametersConfigService;
import io.swagger.annotations.Api;
import org.springframework.beans.BeanUtils;

/**
 * @author GaoWei
 * @Date 2023/8/8 - 16:25
 */

@Api(tags = "EasyExcel遥测表格读取监听器")
public class TmParamExcelListener extends AnalysisEventListener<TmParamExcelVo> {
    //    不可以交给Spring进行管理，需要自己new，不能注入其他对象
    public TmParametersConfigService tmParametersConfigService;
    private String tmframe_identifiers;

    //    构造函数
    public TmParamExcelListener() {
    }

    public TmParamExcelListener(
            TmParametersConfigService tmParametersConfigService,
            String tmframe_identifiers) {
        this.tmParametersConfigService = tmParametersConfigService;
        this.tmframe_identifiers = tmframe_identifiers;
    }

//    读取Excel中的内容
    @Override
    public void invoke(TmParamExcelVo tmParamExcelVo, AnalysisContext analysisContext) {
//        一行一行读取，插入到TmParametersConfig表中
//        创建对象，用于存储
//        此处可以使用官网示例代码，实现批量读取存储集合后，进行批量插入
        TmParametersConfig tmParametersConfig = new TmParametersConfig();
        tmParametersConfig.setTmframeIdentifiers(tmframe_identifiers);
        BeanUtils.copyProperties(tmParamExcelVo,tmParametersConfig);
        tmParametersConfigService.save(tmParametersConfig);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {

    }
}
